handlerWrapper.js ➔ ... ➔ ???   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 4
Bugs 0 Features 0
Metric Value
cc 1
c 4
b 0
f 0
nc 1
nop 1
dl 0
loc 6
ccs 0
cts 4
cp 0
crap 2
rs 9.4285
1
"use strict";
2
3
const logger = require('../logger/taskLogger')('Routing');
4
const transformers = require('./transformers');
5
6
module.exports = (name, handler) => (request, reply) => {
7
    const promise = new Promise(resolve => {
8
        request = transformers.in(request);
9
        logger.info(`[${name.toUpperCase()}][Request]`, {request});
10
11
        resolve(handler(request));
12
    })
13
        .then(response => {
14
            logger.info(`[${name.toUpperCase()}][Response]`, {response});
15
16
            return response;
17
        })
18
    ;
19
20
    return promise.then(response => {
21
        reply({result: transformers.out(response)}).type('application/json');
22
    })
23
        .catch(error => {
24
            // Reply with an error
25
            logger.error(error.stack);
26
            reply({error: error.message}).type('application/json').code(500);
27
28
            return Promise.resolve();
29
        })
30
    ;
31
};
32